#include <iostream>
#include <vector>
using namespace std;

//int main()
//{
//	int q, a, b, c;
//	cin >> q;
//	int count = 0;
//	while (q--)
//	{
//		cin >> a >> b >> c;
//		int Min = min(a, min(b, c));
//		if (Min == b)
//		{
//			count = Min * 2;
//		}
//		else
//		{
//			count = Min * 2 + b - Min - 1;
//		}
//		cout << count << endl;
//	}
//	
//	return 0;
//}


//class Solution {
//public:
//    int LastRemaining_Solution(int n, int m)
//    {
//        vector<int> a(n);
//        int i = 0;
//        for (i = 0; i < n; i++)
//        {
//            a[i] = i + 1;
//        }
//        int cnt = n;
//        int j = 0;
//        while (cnt > 1)
//        {
//            for (i = 0; i < n; i++)
//            {
//                if (a[i] != 0)
//                    j++;
//                if (j == m)
//                {
//                    j = 0;
//                    a[i] = 0;
//                    cnt--;
//                }
//            }
//        }
//        for (i = 0; i < n; i++)
//        {
//            if (a[i] != 0)
//            {
//                break;
//            }
//        }
//        return a[i] - 1;
//
//    }
//};



int main()
{
    int n, m, q;
    cin >> n >> m >> q;
    vector<vector<int>> a(n + 1, vector<int>(m + 1));
    vector<vector<long long int>> dp(n + 1, vector<long long int>(m + 1));
    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= m; j++)
        {
            cin >> a[i][j];
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1] + a[i][j] - dp[i - 1][j - 1];
        }
    }
    int x1, y1, x2, y2;
    while (q--)
    {
        cin >> x1 >> y1 >> x2 >> y2;
        cout << dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] + dp[x1 - 1][y1 - 1] << endl;
    }

    return 0;
}
